﻿using System.Linq.Expressions;
using Basic.FormModel.DB;
using Basic.FormRemoteModel;

namespace Basic.FormCollect
{
    public interface IPhysicalColumnCollect
    {
        void Clear ( long formId );
        Result Get<Result> ( long id ) where Result : class, new();
        Result[] Gets<Result> ( long[] ids ) where Result : class, new();
        Result[] GetsByFormId<Result> ( long formId, FormColumnFuncType[] funcType, FormRecordDataType[] dataType ) where Result : class, new();
        Result[] GetsByTableId<Result> ( long tableId, FormColumnFuncType[] funcType, FormRecordDataType[] dataType, Expression<Func<DBPhysicalTableColumn, Result>> selector ) where Result : class, new();
    }
}